when also can be used as an expression. Whatever the selected branch evaluates to is what the when returns.

The when will also have to be "exhaustive", having branches that cover every possible scenario. Usually, that means that we need an else branch.

You can learn more about this in:
Run Expand Edit